Joy Arulraj - Teaching Statement
نویسنده
چکیده
My teaching experience comes from three semesters as a teaching assistant (TA) of Computer Science at the undergraduate and graduate levels. My rst exposure to teaching came when I served as a TA for the introductory course on programming atWisconsin. This role involved running weekly discussions, grading programming assignments and exams, and assisting students during office hours. I found it particularly rewarding to see the interest in programming this class sparked in students. More recently, I served as the head teaching assistant for the graduate database course at Carnegie Mellon. Since we were offering this course for the rst time in over a decade, there was ample opportunity to redesign the course content to better re ect the needs of our student body. I assisted with the restructuring of the syllabus by creating an array of new programming assignments. Themost effective way for students to learn is through hands-on experience of full-featured database management systems (DBMSs). This would both strengthen their grasp of the design principles underlying DBMSs and enable them to learn modern software development practices. We needed an open-source DBMS for this purpose. Understanding the internals andmaking signi cant changes in state-of-the-art DBMSs takes a lot of time, and we also did not have the required in-house expertise. On the other hand, educational DBMSs, such as SimpleDB, do not allow the student to fully appreciate the architecture of real DBMSs. We concluded that P, a research DBMS that I had been building for a year, would be suitable for this course. I started preparing for this course by refactoring P and streamlining its installation process. I began compiling a wiki with detailed information on setting up and running benchmarks on P. I documented the core components of the DBMS and its design principles. Next, I wanted the students to make experimental changes in different parts of the system without worrying about breaking existing functionality. To achieve this, I expanded the regression testing suite that validates the functionality of the different components of P. I encouraged to make use of our continuous integration server during development. I integrated the programming assignments into an autograding server to give immediate feedback to students on their solutions. I also maintained a leaderboard about which students have the fastest (and correct) implementation for each programming assignment. We used these results as a teaching tool to discuss the impact of the trade-offs that the students made in their code. Students commented that this was the most hands-on systems course that they had taken at CMU and appreciated the modern development practices that they learned in the course. My most recent experience has been with the undergraduate database course. Based on feedback from students who took the graduate course, we decided to revise the undergraduate course content to focus more on the internals of DBMSs. As the head teaching assistant, I was responsible for assisting in the revision of course material, occasional guest lectures, and guiding the other teaching assistants in developing new programming assignments. We decided to situate all the assignments around the development of a new storage engine for the SQLite DBMS.The students learned the fundamentals of DBMSs but did so in a more concrete and applicable format. Overall, these experiences gave me hands-on exposure to the work required to teach at both the graduate and undergraduate levels. As a faculty member, I would be quali ed and excited to teach courses in data management and data science at both the graduate and undergraduate level. I would also be happy to teach classes in operating systems and introductory computer science. At the undergraduate level, I envision an upper-division course on teaching the art of designing software systems. ThisArt of Designing Systems class would introduce students to the fundamentals of architecting large complex systems that are simple to build and extend. This course would involve signi cant software implementation. A distinguishing feature of elite programmers is their ability to decompose systems elegantly into smaller loosely-coupled modules. This class will instill this rare skill in students by gradually exposing them to the layers of abstraction present in a DBMS. Although the programming toolchain will inevitably change, I am con dent that the skills that the students acquire while exploring such a systemwill serve themwell. In doing so, I hope to expose students to the rewarding craft of architecting systems and present opportunities for collaboration.
منابع مشابه
BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory
Storing a database (rows and indexes) entirely in non-volatile memory (NVM) potentially enables both high performance and fast recovery. To fully exploit parallelism on modern CPUs, modern main-memory databases use latch-free (lock-free) index structures, e.g. Bw-tree or skip lists. To achieve high performance NVMresident indexes also need to be latch-free. This paper describes the design of th...
متن کاملDatabase Management Systems for Non-Volatile Memory
Changes in computer trends have given rise to new on-line transaction processing (OLTP) applications that support a large number of concurrent users and systems. What makes these modern applications unlike their predecessors is the scale at which they ingest information. Database management systems (DBMSs) are the critical component of these applications because they are responsible for ensurin...
متن کاملJoy Arulraj - Research Statement
Modern data-intensive applications apply statistical analysis algorithms onmassive databases to deliver qualitatively better results in many domains, including science, governance, and business. These applications require low latency, always-on, and cost-effective data management. This places increased demands on today’s database management systems (DBMSs) whose architectures are tailored for t...
متن کاملWriting a Winning Teaching Statement
When you apply for a job or come up for tenure, you will be asked to submit a teaching statement. Of course in some instances, a teaching statement is not a serious factor in the hiring or the tenure process. An institution requires a statement simply to send the message that it regards teaching as important. And it is no doubt the case that a poor teaching statement can hurt more than a strong...
متن کاملSlimDB: A Space-Efficient Key-Value Storage Engine For Semi-Sorted Data
Modern key-value stores often use write-optimized indexes and compact in-memory indexes to speed up read and write performance. One popular write-optimized index is the Logstructured merge-tree (LSM-tree) which provides indexed access to write-intensive data. It has been increasingly used as a storage backbone for many services, including file system metadata management, graph processing engine...
متن کامل